﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Legend.Guarding
{
    /// <summary>
    /// Provides information about an argument.
    /// </summary>
    /// <typeparam name="T">The type of argument.</typeparam>
    public interface IArgumentInfo<T>
        : IArgumentInfoAccessor<T>
    {
        /// <summary>
        /// The value of the argument.
        /// </summary>
        T Value { get; }

        /// <summary>
        /// The name of the argument in the argument
        /// list of the calling method.
        /// </summary>
        string ArgumentName { get; }
    }
}
